Linux Load Average
Load Average measures the average number of processes in a running (running on the CPU), runnable (waiting for CPU) or uninterruptible (waiting for I/O, e.g., disk/network) state over three time intervals: 1 minute, 5 minutes, and 15 minutes. It reflects system pressure from CPU, memory, disk, or network bottlenecks
Running & Runnable Process
Both Running and Runnable Processes are Marked as R (Running/Runnable) state in tools like top
, ps
, or htop
Running Process: A running process is a program or application that is currently executing on a computer's CPU (Central Processing Unit).
Runnable Process: A runnable process is a process that is fully loaded into memory and ready to execute on the CPU, but is waiting for its turn because the CPU is busy running other processes.
Uninterruptible Process
An Uninterruptible process is a process that is in a special waiting state where it cannot be interrupted or stopped by normal signals, including user interrupts like Ctrl+C or even system signals like SIGKILL (kill -9). Usually displayed as state "D" in process listings.
Waiting for disk reads/writes to complete
Waiting for network responses
Waiting for slow storage devices (tape drives, optical drives)
Hardware device operations
File system operations
Read more: Linux Process States
How to Check Load Average?
uptime
: Show Load Average directlytop
: Real-time view (press1
for per-core stats)cat /proc/loadavg
: Raw data: 1-min, 5-min, active / total processes
How to check CPU Core Count?
nproc
: Total cores/proc/cpuinfo
❯ nproc
16
❯ grep 'model name' /proc/cpuinfo | wc -l
16
Reasonable Load Average
The concept of a "reasonable" average load in Linux depends on system's CPU core count, workload type, and tolerance for performance degradation.
Ideal: Load Avg < 0.7 × CPU cores; Why: Leaves 30% headroom for traffic spikes or background tasks.
Acceptable (Tolerable): Load Avg ≤ 1.0 × CPU cores; Why: All cores are busy but not over-saturated. May experience slight delays.
Critical: Load Avg > 1.0 × CPU cores; Why: Processes queuing up → visible slowness or timeouts.